//created by zangjy on 2012-2-1
Ext.onReady(function(){
	// 屏蔽浏览器默认右键菜单
	Ext.getDoc().on("contextmenu", function(e){
		e.stopEvent();
	});
	// 定义Organization模型
	Ext.define('Organization', {
		extend : 'Ext.data.Model',
		fields : ['orgid', 'orgname']
	});
	// 取得机构
	var storeOrg = Ext.create('Ext.data.Store', {
		model : 'Organization',
		proxy : {
			type : 'ajax',
			url : 'yueyogaAdmin/ajaxgetorganization.do',
			reader : {
				type : 'json'
			}
		},
		listeners : {
			load : function(me,records){
				var cbx = Ext.ComponentQuery.query('#organization')[0];
				if(cbx){
					cbx.setValue(records[0].get('orgid'));
				}
				var txt = Ext.ComponentQuery.query('#user_username')[0];
				if(txt){
					txt.focus();// 自动定位到用户名文本框
				}
			}
		}
	});
	storeOrg.load();// 强制立即加载

	// 登录表单
	Ext.define('Ext.form.Panel', {
		extend : 'Ext.form.Panel',
		alias : 'widget.loginform',
		border : false,
		fieldDefaults : {
			msgTarget : 'side',
			labelWidth : 50
		},
		layout : 'column',
		items : [{
			margin : 5,
			columnWidth : .4,
			border : false,
			html : '<div style="border:solid 1px #0076A3;"><img src="' + viewpath + '/resources/images/login170.jpg" width="175" height="170" /></div>'
		}, {
			margin : 5,
			columnWidth : .6,
			border : false,
			layout : 'anchor',
			defaults : {
				enableKeyEvents : true,
				listeners : {
					keypress : function(obj, evt){
						if(evt.getKey() == Ext.EventObject.RETURN){
							this.up('form').loginSubmit();// 回车提交操作
						}
					}
				}
			},
			items : [{
				xtype : 'textfield',
				name : 'user.username',
				itemId : 'user_username',
				fieldLabel : '用户名',
				fieldCls : 'username',
				allowBlank : false,
				blankText : '用户名不可为空',
				maxLength : 15,
				minLength : 3,
				anchor : '100%'
			}, {
				xtype : 'textfield',
				name : 'user.password',
				fieldLabel : '密　码',
				fieldCls : 'password',
				inputType : 'password',
				allowBlank : false,
				blankText : '密码不可为空',
				maxLength : 15,
				minLength : 6,
				anchor : '100%'
			}, {
				xtype : 'combobox',
				itemId : 'organization',
				name : 'user.organization',
				fieldLabel : '机　构',
				store : storeOrg,
				displayField : 'orgname',
				valueField : 'orgid',
				value : 'org001',
				queryMode : 'local',
				allowBlank : false,
				emptyText : '请选择您所属的机构',
				blankText : '请选择您所属的机构',
				editable : false,
				triggerAction : 'all',
				forceSelection : true,
				anchor : '100%'
			}, {
				xtype : 'textfield',
				name : 'user.captcha',
				fieldLabel : '验证码',
				fieldCls : 'captcha',
				regex : /^\w{5}$/,
				regexText : '图片不清楚吗？请点击图片进行刷新，验证码为5位字符',
				allowBlank : false,
				emptyText : '请填写下方图片中的验证码',
				blankText : '验证码不可为空',
				anchor : '100%'
			}, {
				xtype : 'displayfield',
				fieldLabel : '图　形',
				name : 'image',
				// 此处一定要指定图片大小，否则会出现只加载一半的情况
				value : '<table cellpadding="0" cellspacing="0"><tr><td width="172" height="57"><div style="width:172px;height:57px;border:solid 1px #B5B8C8;text-align:center;line-height:55px;"><img id="captcha" src="yueyogaAdmin/getcaptcha.do" width="170" heigth="55" alt="正在生成验证码,请稍候..." style="cursor:pointer;" onclick="changeCaptcha()"/></div></td><td height="55"><span style="color:red;cursor:pointer;font-size:12px" onclick="changeCaptcha()">&nbsp;&nbsp;点击<br>&nbsp;&nbsp;图片<br>&nbsp;&nbsp;刷新</span></td></tr></table>',
				anchor : '100%'
			}]
		}],
		buttons : [{
			text : '登录',// 提交按钮
			handler : function(){
				this.up('form').loginSubmit();
			}
		}, {
			text : '清空',// 重置按钮
			handler : function(){
				this.up('form').loginReset();
			}
		}],
		loginSubmit : function(){
			var form = this.getForm();
			if(form.isValid()){
				form.submit({
					success : function(form, action){
						location.href = basePath + '/yueyogaAdmin/admin.do';// 进入主页
					},
					failure : function(form, action){
						changeCaptcha();
						var failMsg = '服务器异常，登录请求失败，请稍候重试或联系管理员';
						if(action.result){
							failMsg = action.result.msg;
						}
						Ext.Msg.show({
							title : '错误',
							msg : failMsg,
							buttons : Ext.Msg.OK,
							icon : Ext.Msg.ERROR
						});
						form.findField('user.password').setValue('');
					}
				});
			}
		},
		loginReset : function(){
			this.getForm().reset();
			changeCaptcha();
		}
	});
	Ext.create('Ext.window.Window', {
		title : siteName + '-后台管理登录',
		width : 480,
		height : 255,
		resizable : false,
		closable : false,
		iconCls : 'login-icon',
		layout : 'fit',
		items : {
			xtype : 'loginform',
			url : 'yueyogaAdmin/j_spring_security_check',// define的form不能直接指定url，Ext.create的可以
			border : false,
			bodyCls : 'panel-border-bottom',
			margin : '0 0 5 0'
		}
	}).show();
});
// 获取验证码，此为全局函数
function changeCaptcha(){
	var captcha = document.getElementById("captcha");
	captcha.src = "yueyogaAdmin/getcaptcha.do?id=" + Math.random();
}